package io.yyxx.boot.business.entity.billDataEntity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;

@TableName("flight_bill") // 数据库中的表名
@Data
public class FlightBillData {

    @TableId
    @JsonProperty("id")
    private Long id; // 数据id

    @TableField("create_time")
    @JsonProperty("create_time")
    private LocalDateTime createTime; // 新增时间
    // private LocalDateTime updateTime; // 修改时间

    @TableField("sync_state")
    @JsonProperty("sync_state")
    private int syncState; // 同步状态

    @TableField("dept_date")
    @JsonProperty("dept_date")
    private String deptDate; // 起飞日期

    @TableField("dept_time")
    @JsonProperty("dept_time")
    private String deptTime; // 起飞时间

    @TableField("arr_date")
    @JsonProperty("arr_date")
    private String arrDate; // 到达日期

    @TableField("arr_time")
    @JsonProperty("arr_time")
    private String arrTime; // 到达时间

    @TableField("dept_city")
    @JsonProperty("dept_city")
    private String deptCity; // 起飞城市

    @TableField("arr_city")
    @JsonProperty("arr_city")
    private String arrCity; // 到达城市

    @TableField("dep_airport_code")
    @JsonProperty("dep_airport_code")
    private String depAirportCode; // 起飞机场三字码

    @TableField("dept_station")
    @JsonProperty("dept_station")
    private String deptStation; // 起飞机场名称

    @TableField("arr_airport_code")
    @JsonProperty("arr_airport_code")
    private String arrAirportCode; // 到达机场三字码

    @TableField("arr_station")
    @JsonProperty("arr_station")
    private String arrStation; // 到达机场名称

    @TableField("airline_corp_name")
    @JsonProperty("airline_corp_name")
    private String airlineCorpName; // 航司名称

    @TableField("airline_corp_code")
    @JsonProperty("airline_corp_code")
    private String airlineCorpCode; // 航司二字码

    @TableField("flight_no")
    @JsonProperty("flight_no")
    private String flightNo; // 航班号

    @TableField("cabin")
    @JsonProperty("cabin")
    private String cabin; // 舱位代码

    @TableField("cabin_class")
    @JsonProperty("cabin_class")
    private String cabinClass; // 舱位

    @TableField("ticket_id")
    @JsonProperty("ticket_id")
    private String ticketId; // 票号

    @TableField("corp_pay_order_fee")
    @JsonProperty("corp_pay_order_fee")
    private Double corpPayOrderFee; // 订单金额，单位：元

    @TableField("seal_price")
    @JsonProperty("seal_price")
    private Double sealPrice; // 销售价，单位：元

    @TableField("build_fee")
    @JsonProperty("build_fee")
    private Double buildFee; // 基建费，单位：元

    @TableField("oil_fee")
    @JsonProperty("oil_fee")
    private Double oilFee; // 燃油费，单位：元

    @TableField("insurance_fee")
    @JsonProperty("insurance_fee")
    private Double insuranceFee; // 保险费，单位：元

    @TableField("service_fee")
    @JsonProperty("service_fee")
    private Double serviceFee; // 服务费，单位：元

    @TableField("change_fee")
    @JsonProperty("change_fee")
    private Double changeFee; // 改签手续费，单位：元

    @TableField("upgrade_cost")
    @JsonProperty("upgrade_cost")
    private Double upgradeCost; // 改签差价，单位：元

    @TableField("refund_fee")
    @JsonProperty("refund_fee")
    private Double refundFee; // 退票手续费，单位：元

    @TableField("refund_upgrade_cost")
    @JsonProperty("refund_upgrade_cost")
    private Double refundUpgradeCost; // 改签后退票手续费，单位：元

    @TableField("coupon")
    @JsonProperty("coupon")
    private Double coupon; // 使用的优惠券面额，单位：元

    @TableField("discount")
    @JsonProperty("discount")
    private String discount; // 折扣率

    @TableField("btrip_coupon_fee")
    @JsonProperty("btrip_coupon_fee")
    private Double btripCouponFee; // 商旅价优惠金额，单位：元

    @TableField("negotiation_coupon_fee")
    @JsonProperty("negotiation_coupon_fee")
    private Double negotiationCouponFee; // 协议价优惠金额，单位：元

    @TableField("advance_day")
    @JsonProperty("advance_day")
    private Integer advanceDay; // 提前预定天数

    @TableField("most_price")
    @JsonProperty("most_price")
    private Double mostPrice; // 低价航班价格，单位：元

    @TableField("most_difference_price")
    @JsonProperty("most_difference_price")
    private Double mostDifferencePrice; // 低价提醒（与最低价差额），单位：元

    @TableField("most_difference_flight_no")
    @JsonProperty("most_difference_flight_no")
    private String mostDifferenceFlightNo; // 低价提醒（航班号）

    @TableField("most_difference_discount")
    @JsonProperty("most_difference_discount")
    private String mostDifferenceDiscount; // 低价提醒（折扣）

    @TableField("most_difference_dept_time")
    @JsonProperty("most_difference_dept_time")
    private String mostDifferenceDeptTime; // 低价提醒（起飞时间）

    @TableField("most_difference_reason")
    @JsonProperty("most_difference_reason")
    private String mostDifferenceReason; // 不选低价原因

    @TableField("repeat_refund")
    @JsonProperty("repeat_refund")
    private String repeatRefund; // 是否重复退

    @TableField("itinerary_num")
    @JsonProperty("itinerary_num")
    private String itineraryNum; // 行程单打印序号

    @TableField("itinerary_price")
    @JsonProperty("itinerary_price")
    private Double itineraryPrice; // 行程单金额，单位：元

    @TableField("primary_id")
    @JsonProperty("primary_id")
    private Long primaryId; // 主键 id

    @TableField("`index`")
    @JsonProperty("index")
    private String index; // 序号

    @TableField("status")
    @JsonProperty("status")
    private Integer status; // 入账状态

    @TableField("bill_record_time")
    @JsonProperty("bill_record_time")
    private String billRecordTime; // 入账时间

    @TableField("order_id")
    @JsonProperty("order_id")
    private String orderId; // 商旅订单号

    @TableField("book_time")
    @JsonProperty("book_time")
    private String bookTime; // 预订时间

    @TableField("booker_name")
    @JsonProperty("booker_name")
    private String bookerName; // 预订人姓名

    @TableField("booker_id")
    @JsonProperty("booker_id")
    private String bookerId; // 预订人 ID

    @TableField("booker_job_no")
    @JsonProperty("booker_job_no")
    private String bookerJobNo; // 预订人工号

    @TableField("traveler_name")
    @JsonProperty("traveler_name")
    private String travelerName; // 出行人姓名

    @TableField("traveler_id")
    @JsonProperty("traveler_id")
    private String travelerId; // 出行人 ID

    @TableField("traveler_job_no")
    @JsonProperty("traveler_job_no")
    private String travelerJobNo; // 出行人工号

    @TableField("cascade_department")
    @JsonProperty("cascade_department")
    private String cascadeDepartment; // 出行人归属部门，联级格式

    @TableField("department")
    @JsonProperty("department")
    private String department; // 出行人所属末级部门

    @TableField("department_id")
    @JsonProperty("department_id")
    private String departmentId; // 出行人所属部门 ID

    @TableField("cost_center")
    @JsonProperty("cost_center")
    private String costCenter; // 出行人所属成本中心名称

    @TableField("cost_center_number")
    @JsonProperty("cost_center_number")
    private String costCenterNumber; // 成本中心编号

    @TableField("project_name")
    @JsonProperty("project_name")
    private String projectName; // 出行人所属项目名称

    @TableField("project_code")
    @JsonProperty("project_code")
    private String projectCode; // 出行人所属项目编码

    @TableField("invoice_title")
    @JsonProperty("invoice_title")
    private String invoiceTitle; // 出行人所属的发票抬头名称

    @TableField("settlement_time")
    @JsonProperty("settlement_time")
    private String settlementTime; // 结算时间

    @TableField("fee_type")
    @JsonProperty("fee_type")
    private String feeType; // 费用类型

    @TableField("settlement_type")
    @JsonProperty("settlement_type")
    private String settlementType; // 结算类型

    @TableField("capital_direction")
    @JsonProperty("capital_direction")
    private String capitalDirection; // 资金方向

    @TableField("settlement_fee")
    @JsonProperty("settlement_fee")
    private Double settlementFee; // 结算金额，单位：元

    @TableField("settlement_grant_fee")
    @JsonProperty("settlement_grant_fee")
    private Double settlementGrantFee; // 结算金额中，企业预存赠送部分金额，单位：元

    @TableField("alipay_trade_no")
    @JsonProperty("alipay_trade_no")
    private String alipayTradeNo; // 支付流水号

    @TableField("apply_id")
    @JsonProperty("apply_id")
    private String applyId; // 出差审批单号

    @TableField("over_apply_id")
    @JsonProperty("over_apply_id")
    private String overApplyId; // 超标审批单号

    @TableField("voucher_type")
    @JsonProperty("voucher_type")
    private Integer voucherType; // 票据类型

    @TableField("remark")
    @JsonProperty("remark")
    private String remark; // 备注信息

    @TableField("apply_extend_field")
    @JsonProperty("apply_extend_field")
    private String applyExtendField; // 审批单中自定义扩展字段

    @TableField("tax_rate")
    @JsonProperty("tax_rate")
    private String taxRate; // 税率

    @TableField("dep_city_code")
    @JsonProperty("dep_city_code")
    private String depCityCode; // 出发城市六字码

    @TableField("arr_city_code")
    @JsonProperty("arr_city_code")
    private String arrCityCode; // 到达城市六字码

    @TableField("third_itinerary_id")
    @JsonProperty("third_itinerary_id")
    private String thirdItineraryId; // 行程 ID

    @TableField("apply_dep_city_code")
    @JsonProperty("apply_dep_city_code")
    private String applyDepCityCode; // 审批单出发城市机场三字码

    @TableField("apply_dep_city_name")
    @JsonProperty("apply_dep_city_name")
    private String applyDepCityName; // 审批单出发城市名称

    @TableField("apply_arr_city_code")
    @JsonProperty("apply_arr_city_code")
    private String applyArrCityCode; // 审批单到达城市机场三字码

    @TableField("apply_arr_city_name")
    @JsonProperty("apply_arr_city_name")
    private String applyArrCityName; // 审批单到达城市名称

    @TableField("voyage_name")
    @JsonProperty("voyage_name")
    private String voyageName; // 行程包含城市名称

    @TableField("item_type")
    @JsonProperty("item_type")
    private String itemType; // 行程类型

    @TableField("refund_result")
    @JsonProperty("refund_result")
    private String refundResult; // 退订原因

    @TableField("corp_settle_price")
    @JsonProperty("corp_settle_price")
    private Double corpSettlePrice; // 企业支付金额，单位：元

    @TableField("person_settle_price")
    @JsonProperty("person_settle_price")
    private Double personSettlePrice; // 个人支付金额，单位：元

    @TableField("trade")
    @JsonProperty("trade")
    private String trade; // 行程起始城市机场三字码

    @TableField("business_trip_result")
    @JsonProperty("business_trip_result")
    private String businessTripResult; // 出差事由

    @TableField("change_result")
    @JsonProperty("change_result")
    private String changeResult; // 改签原因

    @TableField("ins_order_id")
    @JsonProperty("ins_order_id")
    private String insOrderId; // 保险订单号

    @TableField("exceed_reason")
    @JsonProperty("exceed_reason")
    private String exceedReason; // 超标原因

    @TableField("insurance_number")
    @JsonProperty("insurance_number")
    private String insuranceNumber; // 保单号

    @TableField("mileage")
    @JsonProperty("mileage")
    private String mileage; // 里程

    @TableField("pre_book_tip")
    @JsonProperty("pre_book_tip")
    private String preBookTip; // 未提前预订原因

    @TableField("traveler_member_type_name")
    @JsonProperty("traveler_member_type_name")
    private String travelerMemberTypeName; // 出行人类型

    @TableField("alipay_id")
    @JsonProperty("alipay_id")
    private String alipayId; // 支付宝 PID

    @TableField("payment_department_id")
    @JsonProperty("payment_department_id")
    private String paymentDepartmentId; // 费用归属部门 ID

    @TableField("payment_department_name")
    @JsonProperty("payment_department_name")
    private String paymentDepartmentName; // 费用归属部门名称

    @TableField("scene_id")
    @JsonProperty("scene_id")
    private String sceneId; // 场景 id

    @TableField("scene_name")
    @JsonProperty("scene_name")
    private String sceneName; // 场景名称

    @TableField("refund_apply_id")
    @JsonProperty("refund_apply_id")
    private String refundApplyId; // 退票审批单号

    @TableField("refund_affiliate_no")
    @JsonProperty("refund_affiliate_no")
    private String refundAffiliateNo; // 退票费归属方

    @TableField("change_reason_code")
    @JsonProperty("change_reason_code")
    private String changeReasonCode; // 改签原因 code

    @TableField("refund_reason_code")
    @JsonProperty("refund_reason_code")
    private String refundReasonCode; // 退订原因 code

    @TableField("offline_status")
    @JsonProperty("offline_status")
    private String offlineStatus; // 线下退改

    @TableField("book_mode")
    @JsonProperty("book_mode")
    private String bookMode; // 预订类型

    @TableField("deductible_tax")
    @JsonProperty("deductible_tax")
    private Double deductibleTax; // 参考可抵扣税额

    @TableField("voucher_type_desc")
    @JsonProperty("voucher_type_desc")
    private String voucherTypeDesc; // 票据类型描述

    @TableField("category_desc")
    @JsonProperty("category_desc")
    private String categoryDesc; // 类目描述

    @TableField("fee_type_desc")
    @JsonProperty("fee_type_desc")
    private String feeTypeDesc; // 费用类型描述

    @TableField("settle_type_desc")
    @JsonProperty("settle_type_desc")
    private String settleTypeDesc; // 结算类型描述

    @TableField("trade_action_desc")
    @JsonProperty("trade_action_desc")
    private String tradeActionDesc; // 资金方向描述

    @TableField("status_desc")
    @JsonProperty("status_desc")
    private String statusDesc; // 入账状态描述

    @TableField("flight_trip_type")
    @JsonProperty("flight_trip_type")
    private String flightTripType; // 订单行程类型

    @TableField("order_ticket_no")
    @JsonProperty("order_ticket_no")
    private String orderTicketNo; // 预订票号

    @TableField("book_channel")
    @JsonProperty("book_channel")
    private String bookChannel; // 预订渠道
}